A mashup builder is an application or tool that facilitates the creation of mashup applications by end users. Mashup builders can be web-based or written to execute in a desktop operating system. A mashup builder builds a mashup application (“mashup”) from multiple services and/or data sources (“content generators”). Data or content from the content generators are combined or manipulated to create another service. Mashups often employ widgets to import, manipulate, and display the content. Widgets that display content control the presentation characteristics of content from a given content generator (i.e., a URI addressable source). Widgets can use a publisher/subscriber technique to self-identify notifications and content types that they are either able to publish or are interested in receiving.
Generally, users create a new mashup by starting with a blank design canvas. A user places one or more widgets within the design canvas, and saves the collection of widgets as placed on the design canvas as a mashup. Saved mashups can often be viewed as Web pages or incorporated into other applications. Communications with and among widgets are either automatically determined (some widgets can detect other “compatible” widgets and automatically communicate) or are user specified through the design interface. A user can save a constructed mashup and publish it to a server. Each time the mashup is used, the widgets of the mashup can pull content from their respective content generators and can communicate with each other through their publisher/subscriber technique. Mashups represent a powerful paradigm of customized Web application development, which is quick, leverages existing resources, and permits a user set having minimal software development knowledge to create robust, customized Web applications.